package com_djm_2025_05_11;

import java.util.Scanner;

/**
 * @author dengjiangming \
 * @version 1.0.0
 * @date 2025-05-15
 */
public class Demo8 {
    /*
    求出0～n之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本 身，如；153＝1^3＋5^3＋3^3，则153是一个“水仙花数“。）
     */
    public static boolean func(int n){
        if( n < 100){
            return false;
        }

        double sum = 0;
        int tmp = n;

        while( tmp > 0){
            sum += Math.pow(tmp % 10,3);
            tmp /= 10;
        }

        if( sum == (double)n){
            return true;
        }else{
            return false;
        }
    }

    public static int count(int num){
        if(num == 0){
            return 1;
        }

        int count = 0;
        while(num > 0){
            count++;
            num /= 10;
        }

        return count;
    }

    public static boolean func2(int num){
        double sum = 0.0;
        int count = count(num);

        int tmp = num;

        while(tmp > 0){
            sum += Math.pow(tmp % 10,count);
            tmp /= 10;
        }

        if(sum == num){
            return true;
        }else{
            return false;
        }
    }

    public static void main(String[] args) {
        //构造一个Scanner进行输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = sc.nextInt();
        //判断一个三位数是不是水仙花数：

//        func(153);

        for(int i = 100;i <= num;i++){
            if(func2(i)){
                System.out.println(i);
            }
        }
    }


}
